/* Copyright (c) 2004-2024 Peigen.info. All rights reserved. */

package info.peigen.hotpot.business.router.facade;

import info.peigen.hotpot.business.router.facade.order.virtualaccount.ManageBatchVirtualAccountOrder;
import info.peigen.hotpot.business.router.facade.order.virtualaccount.ManageSingleVirtualAccountOrder;
import info.peigen.hotpot.business.router.facade.order.virtualaccount.QueryVirtualAccountDetailOrder;
import info.peigen.hotpot.business.router.facade.order.virtualaccount.QueryVirtualAccountOrder;
import info.peigen.hotpot.business.router.facade.result.virtualaccount.ManageBatchVirtualAccountResult;
import info.peigen.hotpot.business.router.facade.result.virtualaccount.ManageSingleVirtualAccountResult;
import info.peigen.hotpot.business.router.facade.result.virtualaccount.QueryVirtualAccountDetailResult;
import info.peigen.hotpot.business.router.facade.result.virtualaccount.QueryVirtualAccountResult;

/**
 * <b>(VirtualAccountManageFacade)</b>
 * 虚拟账户管理服务
 *
 * @author Peigen
 * @version 1.0.0
 * @since 2021/8/31
 */
public interface VirtualAccountManageFacade {
    /**
     * 查询虚拟账户
     *
     * @param order 入参
     *
     * @return QueryVirtualAccountResult
     */
    QueryVirtualAccountResult queryVirtualAccount(QueryVirtualAccountOrder order);

    /**
     * 查询虚拟账户详情
     *
     * @param order 入参
     *
     * @return QueryVirtualAccountDetailResult
     */
    QueryVirtualAccountDetailResult queryByCardId(QueryVirtualAccountDetailOrder order);

    /**
     * 管理单个虚拟账户
     *
     * @param order 入参
     *
     * @return ManageSingleVirtualAccountResult
     */
    ManageSingleVirtualAccountResult manageSingleVirtualAccount(ManageSingleVirtualAccountOrder order);

    /**
     * 批量管理虚拟账户
     *
     * @param order 入参
     *
     * @return ManageBatchVirtualAccountResult
     */
    ManageBatchVirtualAccountResult manageBatchVirtualAccount(ManageBatchVirtualAccountOrder order);
}
